Computer networks are an important part of contemporary computing environments. Using a computer network, network entities such as network appliances, client computers, server computers, mobile devices, and other devices are able to exchange information, utilize network-based services, and work together to perform complex operations. Network entities may be connected to a computer network using a wired connection such as an Ethernet connection, a wireless connection such as a Wi-Fi connection, or a virtual connection using a virtual network adapter. In a packet-switched network, information transferred between two network entities is arranged and transmitted as a packet, and the packet includes information identifying the sender and the intended recipient of the packet. If there is not a direct connection between the sender and the intended recipient, the packet may be relayed by an intermediary device or router. After receiving the packet, the router attempts to forward the packet to the intended recipient or, if the intended recipient is not accessible, to another router that is closer, in network terms, to the intended recipient. Depending at least on the topology of the computer network and the network distance between the sender and the intended recipient, a number of routers may be used to relay the packet to the intended recipient.
Some computer networks, such as the Internet, use many routers to enable interconnections between hundreds, thousands, or even millions of network entities thereby creating a large number of possible sender/recipient combinations. Occasionally, routers may fail, resulting in packet loss or corruption. Therefore, detecting packet loss, and identifying routers that are responsible for packet loss is an important problem.